An information processing system receives a plurality of structured documents. The information processing system processes the structured documents and produces structured documents with processed information. Processing a structured document can include storing the structured document in memory, modifying the structured document and accessing the structured document for further processing or for rendering the structured document. The structured document can be modified by making a plurality of changes in the structured document. Further, the structured document stored in the memory of the information processing system can be accessed for further processing or for rendering. The rendering includes printing of the structured document.
The structured document can also be distributed subsequent to the processing. The structured document can be distributed through network and on-demand printing, electronic data interchange (EDI) and electronic mail. When the volume of the structured documents entering the information processing system is high, it is a challenge to process the structured documents since the speed of processing and the ease of access of the structured document may be affected due to the volume. Further, storing the structured document and modifying the structured document becomes complicated.
Conventional methods for processing the structured documents require the structured documents to be stored in contiguous memory for processing. Further, an additional binary data structure representation of the structured document is created for modifying the structured document. Changes are made in the additional binary data structure and the structured document is rebuilt and stored in the contiguous memory. However, storing the structured document in the contiguous memory may be an inefficient method for storing large structured documents since the large structured documents may not fit in the available free memory space. Further, modifying the structured document when the structured document is stored in the contiguous memory becomes complicated. For example, consider a situation where information has to be added in arbitrary spaces of the structured document for modifying the structured document. In order to enable modification of the structured document by adding information in arbitrary spaces, data may be moved to keep the structured document in the contiguous memory. Further, if the structured document is large then large data can be moved to add information and maintain the structured document in the contiguous memory.
Also, multiple copies of the structured document may be desired. Further, if each of the multiple copies requires modification then the respective numbers of copies are stored in the memory and each one of the copies is modified. This results in inefficient usage of memory.
In light of the foregoing discussion, there is a need for an efficient technique for processing structured documents. Further, memory utility has to be optimized by enabling efficient storage of the structured documents in the memory.